/* ************************************************************************

   Copyright:

   License:

   Authors:

************************************************************************ */

/* ************************************************************************

#asset(elpintao/*)

************************************************************************ */

/**
 * This is the main application class of your custom application "elpintao"
 */
qx.Class.define("elpintao.Application",
{
  extend : qx.application.Standalone,



  /*
  *****************************************************************************
     MEMBERS
  *****************************************************************************
  */

  members :
  {
    /**
     * This method contains the initial application code and gets called 
     * during startup of the application
     * 
     * @lint ignoreDeprecated(alert)
     */
    main : function()
    {
      // Call super class
      this.base(arguments);

      // Enable logging in debug variant
      if (qx.core.Variant.isSet("qx.debug", "on"))
      {
        // support native logging capabilities, e.g. Firebug for Firefox
        qx.log.appender.Native;
        // support additional cross-browser console. Press F7 to toggle visibility
        qx.log.appender.Console;
      }

      /*
      -------------------------------------------------------------------------
        Below is your actual application code...
      -------------------------------------------------------------------------
      */


	var doc = this.getRoot();

	var paramet = this.paramet = {id_sucursal: "1", id_sucursal_central: "1", url_central: ""};
	var pageProductos = null;
	var pagePedidos = null;
	var pagePedidosExt = this.pagePedidosExt = null;
	var objPunteoPedidoExt = {};
	


	var functionActualizarPedidoExt = this.functionActualizarPedidoExt = function(parametro) {
		if (pagePedidosExt != null) {
			tabviewMain.setSelection([pagePedidosExt]);
			pagePedidosExt.functionActualizar();
		}
	}

	var functionPuntearPedidoExt= this.functionPuntearPedidoExt = function(parametro) {
		if (objPunteoPedidoExt[parametro.id_pedido_ext]==null) {
			objPunteoPedidoExt[parametro.id_pedido_ext] = new elpintao.frms.pedidos.pagePunteoPedidoExt(this, parametro);
			
			objPunteoPedidoExt[parametro.id_pedido_ext].addListenerOnce("close", function(e){
				objPunteoPedidoExt[parametro.id_pedido_ext] = null;
			});
			tabviewMain.add(objPunteoPedidoExt[parametro.id_pedido_ext]);
		}
		tabviewMain.setSelection([objPunteoPedidoExt[parametro.id_pedido_ext]])
	};
	
	var commandF5 = new qx.ui.core.Command("F5");
	var commandCtrlR = new qx.ui.core.Command("Ctrl+R");

	var objFabrica = this.objFabrica = {};
	objFabrica.store = new qx.data.store.Json();
	objFabrica.store.addListener("loaded", function(e){
		var model = e.getData();
		objFabrica.indice = [];
		for (var i = 0; i < model.length; i++) {
			objFabrica.indice[model.getItem(i).get("id_fabrica")] = model.getItem(i);
			objFabrica.indice[model.getItem(i).get("descrip")] = model.getItem(i);
		}
	});
	objFabrica.store.setUrl("services/class/elpintao/Stores.php?rutina=leer_fabrica");
		
	var objColor = this.objColor = {};
	objColor.store = new qx.data.store.Json();
	objColor.store.addListener("loaded", function(e){
		var model = e.getData();
		objColor.indice = [];
		for (var i = 0; i < model.length; i++) {
			objColor.indice[model.getItem(i).get("id_color")] = model.getItem(i);
			objColor.indice[model.getItem(i).get("descrip")] = model.getItem(i);
		}
	});
	objColor.store.setUrl("services/class/elpintao/Stores.php?rutina=leer_color");
	
	var objMoneda = this.objMoneda = {};
	objMoneda.store = new qx.data.store.Json();
	objMoneda.store.addListener("loaded", function(e){
		var model = e.getData();
		objMoneda.indice = [];
		for (var i = 0; i < model.length; i++) {
			objMoneda.indice[model.getItem(i).get("id_moneda")] = model.getItem(i);
			objMoneda.indice[model.getItem(i).get("descrip")] = model.getItem(i);
		}
	});
	objMoneda.store.setUrl("services/class/elpintao/Stores.php?rutina=leer_moneda");
		
	var objUnidad = this.objUnidad = {};
	objUnidad.store = new qx.data.store.Json();
	objUnidad.store.addListener("loaded", function(e){
		var model = e.getData();
		objUnidad.indice = [];
		for (var i = 0; i < model.length; i++) {
			objUnidad.indice[model.getItem(i).get("id_unidad")] = model.getItem(i);
			objUnidad.indice[model.getItem(i).get("descrip")] = model.getItem(i);
		}
	});
	objUnidad.store.setUrl("services/class/elpintao/Stores.php?rutina=leer_unidad");
	
	var objTransporte = this.objTransporte = {};
	objTransporte.store = new qx.data.store.Json();
	objTransporte.store.addListener("loaded", function(e){
		var model = e.getData();
		objTransporte.indice = [];
		for (var i = 0; i < model.length; i++) {
			objTransporte.indice[model.getItem(i).get("id_transporte")] = model.getItem(i);
			objTransporte.indice[model.getItem(i).get("descrip")] = model.getItem(i);
		}
	});
	objTransporte.store.setUrl("services/class/elpintao/Stores.php?rutina=leer_transporte");
	
	
	
	var timerTransmision = this.timerTransmision = new qx.event.Timer(60000 * 10);
	//var timerTransmision = this.timerTransmision = new qx.event.Timer(10000);
	timerTransmision.addListener("interval", function(e){
		var rpc = new qx.io.remote.Rpc("services/", "elpintao.Transmision");
		rpc.callAsync(function(resultado, error, id){

		}, "transmitir_pedidos");
	});
	timerTransmision.start();
	
	
	var contenedorMain = new qx.ui.container.Composite(new qx.ui.layout.Grow());
	var tabviewMain = this._tabviewMain = new qx.ui.tabview.TabView();
	
	contenedorMain.add(tabviewMain);
	
	
	var mnuArchivo = new qx.ui.menu.Menu();
	var btnAcercaDe = new qx.ui.menu.Button("Acerca de...");
	btnAcercaDe.addListener("execute", function(){
		var windowAcercaDe = new elpintao.frms.varios.windowAcercaDe();
		windowAcercaDe.setModal(true);
		doc.add(windowAcercaDe);
		windowAcercaDe.center();
		windowAcercaDe.open();
	});
	mnuArchivo.add(btnAcercaDe);
	  
	var mnuVer = new qx.ui.menu.Menu();
	var btnFichaPrincipal = new qx.ui.menu.Button("Productos");
	btnFichaPrincipal.addListener("execute", function(e){
		if (pageProductos==null) {
			pageProductos = new elpintao.frms.productos.pageProductos(this);
			pageProductos.addListenerOnce("close", function(e){
				pageProductos = null;
			});
			tabviewMain.add(pageProductos);				
		} 
		tabviewMain.setSelection([pageProductos])
	}, this);
	mnuVer.add(btnFichaPrincipal);
	mnuVer.addSeparator();
	var btnPedidos = new qx.ui.menu.Button("Pedidos internos");
	btnPedidos.addListener("execute", function(e){
		if (pagePedidos==null) {
			pagePedidos = new elpintao.frms.pedidos.pagePedidos(this);
			
			pagePedidos.addListenerOnce("close", function(e){
				pagePedidos = null;
			});
			tabviewMain.add(pagePedidos);
		}
		tabviewMain.setSelection([pagePedidos])
	}, this);
	mnuVer.add(btnPedidos);
	var btnPedidosExt = new qx.ui.menu.Button("Pedidos externos");
	btnPedidosExt.addListener("execute", function(e){
		if (pagePedidosExt==null) {
			pagePedidosExt = this.pagePedidosExt = new elpintao.frms.pedidos.pagePedidosExt(this);
			
			pagePedidosExt.addListenerOnce("close", function(e){
				pagePedidosExt = null;
			});
			tabviewMain.add(pagePedidosExt);
		}
		tabviewMain.setSelection([pagePedidosExt])
	}, this);
	mnuVer.add(btnPedidosExt);
	
	
	var mnubtnArchivo = new qx.ui.toolbar.MenuButton('Archivo');
	var mnubtnEdicion = new qx.ui.toolbar.MenuButton('Edición');
	var mnubtnVer = new qx.ui.toolbar.MenuButton('Ver');
	
	mnubtnArchivo.setMenu(mnuArchivo);
	mnubtnVer.setMenu(mnuVer);
	  
	
	var toolbarMain = new qx.ui.toolbar.ToolBar();
	toolbarMain.add(mnubtnArchivo);
	toolbarMain.add(mnubtnEdicion);
	toolbarMain.add(mnubtnVer);
	
	doc.add(toolbarMain, {left: 5, top: 5, right: 5});
	
	doc.add(contenedorMain, {left: 0, top: 38, right: 0, bottom: 0});
	
    }
  }
});
